//对axios进行二次封装
import axios from "axios";
//引入进度条对象
import nprogress from "nprogress";
//引入进度条样式
import "nprogress/nprogress.css";

let requests = axios.create({
  //配置对象
  //基础路径，发送请求时，路径当中会出现API
  baseURL:"/store",
  //代表请求超时5秒就失败
  timeout:5000,
})

//请求拦截器：在发送请求之前，请求拦截器可以检测到，并在请求发送之前做一些操作
requests.interceptors.request.use((config)=>{
  //携带token和门店ID给服务器
  if(sessionStorage.getItem("GETTOKEN")){
    //请求头添加一个字段，已经和后台确认
    config.headers.token = sessionStorage.getItem("GETTOKEN");
  }
  if(sessionStorage.getItem("STOREID")) {
    //请求头添加一个字段，已经和后台确认
    config.headers.shopId = sessionStorage.getItem("STOREID");
  }
  //进度条开始
  nprogress.start();
  return config;
})

//响应拦截器
requests.interceptors.response.use((res)=>{
  //成功的回调函数：服务器响应数据回来以后，响应拦截器可以检测到，并做操作
  //进度条结束
  nprogress.done();
  return res.data;
},(error)=>{
  return Promise.reject(new Error('false'));
})

//对外暴露
export default requests